package com.plm.k8s.myk8sapi.cmd;

import java.io.File;
import java.util.List;

/**
 * @author 潘磊明
 * 版本号：1.0
 * 创建日期：2021/7/14 9:36
 */
public interface ICmd {
    /**
     * 执行命令
     * @param cmd
     * @return
     */
    String exec(String... cmd);

    /**
     * 执行命令并按每行的形式返回
     * @param cmd
     * @return
     */
    List<String> execForLine(String... cmd);

    /**
     * 执行命令并返回对象
     * @param cmd
     * @param clazz
     * @param <T>
     * @return
     */
    <T>T execForYamlObject(String cmd, Class<T> clazz) throws Exception;

    /**
     * 应用yaml文件
     * @param file
     * @return
     * @throws Exception
     */
    String applyYamlFile(File file) throws Exception;

    /**
     * 应用yaml文件
     * @param file
     * @return
     * @throws Exception
     */
    String applyYamlFile(File file, boolean isDelete) throws Exception;

    /**
     * 删除yaml文件
     * @param file
     * @return
     * @throws Exception
     */
    String deleteYamlFile(File file) throws Exception;

    /**
     * 删除yaml文件
     * @param file
     * @return
     * @throws Exception
     */
    String deleteYamlFile(File file, boolean isDelete) throws Exception;
}
